Twain is a standard framework for imaging applications. The applications call a well-known API to control document scanners, digital cameras, and image databases that are Twain-compliant. Vendor-supplied hardware drivers used with Twain devices conform to a well-known set of interfaces and capabilities. The standard framework for the Twain architecture includes a Twain application such as WORD from Microsoft Corporation of Redmond, Wash. or a photo editing application. The architecture also includes a data source manager (DSM) which is a component which supplies the API called by the application which controls the vendor-supplied hardware drivers. For the WINDOWS operating system from Microsoft Corporation of Redmond, Wash., the data source manager is found in the DLL twain—32.dll which is shipped with WINDOWS. The component is generic and has no knowledge of the underlying image hardware. Also included in the standard Twain architecture is a data source (DS) which is a vendor-supplied driver for a specific device. The data source is responsible for talking to the image acquisition device using one of several protocols such as USB, FIREWIRE, Parallel, SCSI, IR, BLUETOOTH, the IEEE 1394 protocol, the Wi-Fi protocol, or other wireless protocol. The imaging devices may be scanners, digital cameras, or software applications.
FIG. 1 (prior art) depicts the conventional Twain architecture. The conventional Twain architecture includes a computer 2 that is being utilized by a user 6 with a connected monitor 4. The computer 2 includes a Twain application 8 such as a photo editing application. The Twain application 8 makes function calls to the data source manager 10. The data source manager 10 provides the API by which the application may access the vendor data source 12, the vendor-supplied hardware driver for the make and model of the image acquisition device communicating with the computer 2. The depicted Twain architecture includes a USB 14 interface to the computer. A Twain-compliant scanner 16 is tethered to the computer system via the USB interface 14.
Unfortunately, the conventional techniques for controlling Twain-compliant devices utilized by the Twain applications do not work particularly well in a distributed multi-user, multi-session environment. For example, a server hosting multiple user sessions for remote client systems must be loaded with unique vendor-specific hardware drivers for each Twain-compliant device. While not a problem for controlling a single device for a single user, multiple devices require the server to include multiple drivers. Additionally, for a server supporting user sessions, the virtual channel supports one application per session. This prevents multiple Twain-compliant devices from being supported within the same session and prevents the use of more than one Twain application in the session at the same time.